Skip to content

ci(schema): enforce locale-tag refs - #6444

Merged
bokelley merged 3 commits into
mainfrom
codex/lint-language-tag-refs
Aug 13, 2026
Merged

ci(schema): enforce locale-tag refs#6444
bokelley merged 3 commits into
mainfrom
codex/lint-language-tag-refs

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

  • add a high-recall JSON Schema lint that enforces canonical locale-tag references across string, array, union, conditional, wrapper-ref, and locale-keyed map shapes
  • seed an exact, typed, self-cleaning disposition registry for legacy language boundaries and non-tag name collisions
  • add focused regression coverage and run the guard in Build Check

Validation

  • npm run test:language-tag-refs
  • npm run test:schemas
  • npm run precommit

Closes #6234

@bokelley
bokelley marked this pull request as ready for review August 13, 2026 08:33
@aao-secretariat aao-secretariat Bot added the ladon/needs-human-review Ladon has escalated this PR for human review. label Aug 13, 2026

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ladon verdict: Escalate to human review

Escalate — gated path touched and required review not yet satisfied.

This PR adds a high-recall JSON Schema lint (scripts/lint-language-tag-refs.cjs), a typed disposition registry, focused tests, a package.json npm script, and a Build Check workflow step. The reviewer found no actionable issues: no static/schemas/source/**, dist/**, wire-shape, or package.json version changes, so schema-drift, changeset, oneOf, and immutability rules do not apply. Control flow of the lint script is fail-closed and verified against tests. Clean diff.

However, .github/workflows/build-check.yml (modified) matches the gated glob .github/workflows/**, so gated_paths: true, and review_decision is REVIEW_REQUIRED (not APPROVED). Per decision-table row 2, this is a hard, non-overridable approval gate that must not be auto-approved until a human/CODEOWNERS review is recorded.

No blocking findings exist — the escalation is purely the gated-path requirement.

Escalation reasons

  • .github/workflows/build-check.yml (modified) is under the hard approval gate (.github/workflows/**); review_decision is REVIEW_REQUIRED. Human/CODEOWNERS approval required before merge.

Why human review

  • Modifies .github/workflows/build-check.yml — matches gated path .github/workflows/**, and review_decision is REVIEW_REQUIRED (not APPROVED). Requires human/CODEOWNERS review.
  • This PR touches a path under a hard, non-overridable approval gate (.github/workflows/build-check.yml (modified) matches .github/workflows/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.

@bokelley
bokelley merged commit c26c62e into main Aug 13, 2026
47 checks passed
@bokelley
bokelley deleted the codex/lint-language-tag-refs branch August 13, 2026 13:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ladon/needs-human-review Ladon has escalated this PR for human review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enforce the locale-tag $ref rule in CI (lint-language-tag-refs)

2 participants